import axios from '@/utils/request'
export default {
  Coupon: {
    form: {
      fields: [
        'name',
        {
          property: 'type',
          component: {
            props: ['form', 'property'],
            render(h) {
              return (
                <el-select v-model={this.form[this.property]} filterable placeholder='优惠券类型'>{
                  [
                    { label: '满减券', value: '0' },
                    { label: '折扣券', value: '1' }
                    // { label: '产品券', value: '2' }
                  ]
                    .map(printer => {
                      return <el-option key={printer.value} label={printer.label} value={printer.value} />
                    })
                }</el-select>
              )
            }
          }
        },
        // {
        //   property: 'category',
        //   relation_filter: {
        //     '@filter': `entity.getType().getSlug() == 'product'`
        //   },
        //   help: '可以使用的产品类型，不选择为通用券',
        //   required: false
        // },
        // {
        //   property: 'stores',
        //   label: '可使用店铺',
        //   required: false,
        //   help: '绑定可使用店铺后，该优惠券只能对应店铺进行使用'
        // },
        // {
        //   property: 'products',
        //   relation_filter: {
        //     '@filter': `true`
        //   },
        //   label: '可使用产品',
        //   required: false,
        //   help: '绑定可使用产品后，该优惠券只能针对选中产品进行使用'
        // },
        {
          property: 'image',
          type: 'image'
        },
        {
          property: 'userLimit',
          help: '每个用户可以获取的上限，使用了的都算，-1为不限制'
        },
        {
          property: 'totalLimit',
          help: '全网发放总量，0为不限制，本项不会扣减，如果需要重复发放，直接增加本项数量'
        },
        'threshold',
        {
          property: 'discount',
          help: '折扣券的时候，填写0-1的小数，满减券的时候，填写扣减金额,产品券的时候，填写0'
        },
        {
          property: 'enabled',
          default_value: true
        },
        {
          property: 'isCollectAvailable',
          field_options: { label: '是否可以领取' }
        },
        'pickUpStartTime',
        'pickUpEndTime',
        {
          property: 'duringDay',
          default_value: 30,
          help: '领取后几天失效'
        }
        // {
        //   property: 'useStartTime',
        //   type: 'datetime',
        //   field_options: {
        //     label: '可使用开始时间'
        //   },
        //   help: '设置了这个时间，就只能在这个时间之后使用'
        // },
        // {
        //   property: 'useEndTime',
        //   type: 'datetime',
        //   field_options: {
        //     label: '可使用结束时间'
        //   },
        //   help: '设置了这个时间，就只能在这个时间之前使用'
        // },
        // { property: 'description', type: 'textarea' }
      ]
    },
    list: {
      query: {
        '@order': 'entity.enabled|DESC,entity.modifiedTime|DESC'
      },
      list_filter: {
        'name': '卡券名'
      },
      list_display: [
        'name',
        {
          property: 'image',
          type: 'image'
        },
        'userLimit',
        {
          property: 'type',
          component: {
            props: ['data'],
            render(h) {
              return (
                <el-tag>{['满减券', '折扣券', '产品券'][parseInt(this.data)]}</el-tag>
              )
            }
          }
        },
        'discount',
        { property: 'enabled', editable: true },
        'duringDay',
        {
          property: 'remains',
          label: '发放剩余量'
        },
        {
          property: 'id',
          label: '抢券二维码',
          component: {
            props: ['scope', 'data'],
            render(h) {
              console.log(11111, this.scope)
              if (this.scope.row.isCollectAvailable) {
                return (
                  <el-image
                    style='width: 100px; height: 100px'
                    src={`https://wechat.wscoffee.com.cn/qr-code/mini-program?page=pages/index/coupon-rob&scene=${this.data}`}>
                  </el-image>
                )
              }
              if (!this.scope.row.isCollectAvailable) {
                return (
                  <div>不支持</div>
                )
              }
            }
          }
        }
      ]
    }
  },

  UserCoupon: {
    form: {
      fields: [
        'user',
        'coupon',
        {
          property: 'isUsed',
          default_value: 0
        },
        'expiredTime'
      ]
    },
    list: {
      query: {
        '@order': 'entity.createdTime|DESC',
        '@expands': `['entity.user.profile']`
      },
      list_filter: {
        'user': {
          expression: 'entity.getUser().getProfile().getNickname() matches ":value" || entity.getUser().getProfile().getPhone() matches ":value"',
          label: '用户/电话',
          type: 'input'
        },
        expiredTime: {
          expression: 'entity.getExpiredTime() >= datetime.get(":value 00:00:00")  && entity.getExpiredTime() <= datetime.get(":value 23:59:59")',
          label: '到期时间',
          type: 'date'
        },
        'coupon.id': () => {
          return axios
            .get('/manage/coupons', { params: { '@order': `entity.modifiedTime|DESC` } })
            .then(res =>
              Object.assign(
                { __label: '优惠券' },
                ...res.data.map(v => {
                  return { [v.id]: v.name }
                })
              )
            )
        }
      },
      list_display: [
        'id',
        { property: 'user.__metadata.profile.__metadata.phone', label: '电话' },
        'coupon',
        'isUsed',
        {
          property: 'createdTime',
          label: '领取时间'
        },
        'expiredTime'
      ]
    }
  }
}
